package com.example.java9.feature_04;

import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class TestStreamNewApi {

    public static void main(String[] args){

        List<String> boss = List.of("帝王神龟", "珠圆玉润", "铁爪鬼王", "边疆铁犀", "钢化巨灵");

        boss.stream()
                // 从第一个元素开始找带"王"子的元素,直到遇到不带"王"字的元素
                .takeWhile(obj -> obj.contains("王"))
                .collect(Collectors.toList())
                // 结果只输出boss第一个元素,因为第2个元素就没有"王"字
                .forEach(System.out::println);

        boss.stream()
                // 与上面的相反，从第一个元素开始找带"王"子的元素,直到遇到不带"王"字的元素所剩下的元素
                .dropWhile(obj -> obj.contains("王"))
                .collect(Collectors.toList())
                // 结果输出除第一个boss外剩下的boss
                .forEach(System.out::println);


        System.out.println("--无需的集合-----------");
        Set<String> set = Set.of("珠圆玉润", "钢化巨灵", "帝王神龟", "铁爪鬼王", "边疆铁犀");
        set.stream()
                // 从第一个开始找,第一个就不是,所以返回一个空Stream
                .takeWhile(obj -> obj.contains("王"))
                .collect(Collectors.toSet())
                .forEach(System.out::println);
    }

}
